package br.uvv.Web.ManagedBean;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.annotation.PostConstruct;

import br.uvv.Model.ClientePortal;
import br.uvv.Model.Usuario;
import br.uvv.Service.UsuarioService;
import br.uvv.Util.MsgUtil;
import br.uvv.Util.RNException;

public class ContextoBean implements Serializable {

	private static final long serialVersionUID = 6082063528877385753L;
	
	private UsuarioService service;
	
	private Usuario usuario;
	private List<Usuario> usuarioList;
	private ClientePortal clienteEmContexto;
	
	//Referentes aos data tables
	private String rowsPerPage;
	private String paginatorTemplate;
	private Integer dataTableRows;
	private String paginatorPosition;
	
	public String contexto(){
		init();
		return null;
	}
	
	@PostConstruct
	private void init(){
		service = new UsuarioService();
		usuario = new Usuario();
		usuarioList = new ArrayList<Usuario>();
		dataTableRows = 5;
		rowsPerPage = "5, 10, 15";
		paginatorTemplate = "{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}";
		paginatorPosition = "bottom";
		goSimulaLogin();
	}
	
	public String goSimulaLogin(){
		try {
			service = new UsuarioService();	
			usuario = service.selecionarUsuario(32770L);
			return "/views/inicio.xhtml";
		} catch (RNException e) {
			e.printStackTrace();
		}
		return null;
	}
	
	public String goLogin(){
		init();
		return "/views/publicas/login.xhtml";
	}
	
	public String goSobre(){
		return "/views/publicas/sobre.xhtml";
	}
	
	public String doLogin(){
		Usuario usuarioTemp;
		try {
			usuarioTemp = service.selecionarUsuario(1l);
			if (usuarioTemp != null){
				MsgUtil.info("Bem vindo " + usuario.getNomeCurto());
				return "/views/inicio.xhtml";
			} else {
				MsgUtil.error("Não encontrado");
			}
		} catch (RNException e) {
			e.printStackTrace();
		} 
		return "/views/publicas/login.xhtml";
	}
	
	public String goRegistrar(){
		init();
		return "/views/publicas/registrar.xhtml";
	}
	
	public Usuario getUsuario() {
		return usuario;
	}
	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}
	public List<Usuario> getUsuarioList() {
		return usuarioList;
	}
	public void setUsuarioList(List<Usuario> usuarioList) {
		this.usuarioList = usuarioList;
	}
	public Integer getDataTableRows() {
		return dataTableRows;
	}
	public void setDataTableRows(Integer dataTableRows) {
		this.dataTableRows = dataTableRows;
	}
	public String getRowsPerPage() {
		return rowsPerPage;
	}
	public void setRowsPerPage(String rowsPerPage) {
		this.rowsPerPage = rowsPerPage;
	}
	public String getPaginatorTemplate() {
		return paginatorTemplate;
	}
	public void setPaginatorTemplate(String paginatorTemplate) {
		this.paginatorTemplate = paginatorTemplate;
	}
	public ClientePortal getClienteEmContexto() {
		return clienteEmContexto;
	}
	public void setClienteEmContexto(ClientePortal clienteEmContexto) {
		this.clienteEmContexto = clienteEmContexto;
	}
	public String getPaginatorPosition() {
		return paginatorPosition;
	}
	public void setPaginatorPosition(String paginatorPosition) {
		this.paginatorPosition = paginatorPosition;
	}
}
